
package com.intretech.umsin.system.vo;

import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.intretech.umsin.common.entity.Assignment;
import com.intretech.umsin.common.excel.converter.LocalDateTimeConverter;

/**
* @version V1.0
* 菜单权限:sys_menu 对应的VO模型类.
* @ClassName: SysMenuVo
* @Description: 菜单权限:sys_menu 对应的VO模型类.
* @author: 李启联
* @date:   2022-8-16 16:25:07
* @Copyright: Copyright (c) 2022
*/
@ApiModel("菜单权限")
@ExcelIgnoreUnannotated
public class SysMenuVo implements Assignment, Serializable {

    // 菜单ID
    @ApiModelProperty(value = "菜单ID" ,dataType="bigint(19)" ,required= true)
    @ExcelProperty(value = "菜单ID")
    private Long id;

    // 菜单名称
    @ApiModelProperty(value = "菜单名称" ,dataType="varchar(50)" ,required= true)
    @ExcelProperty(value = "菜单名称")
    private String menuName;

    // 父菜单ID
    @ApiModelProperty(value = "父菜单ID" ,dataType="bigint(19)" ,required= false)
    @ExcelProperty(value = "父菜单ID")
    private Long parentId;

    // 显示顺序
    @ApiModelProperty(value = "显示顺序" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "显示顺序")
    private Integer orderNum;

    // 路由地址
    @ApiModelProperty(value = "路由地址" ,dataType="varchar(200)" ,required= false)
    @ExcelProperty(value = "路由地址")
    private String path;

    // 组件路径
    @ApiModelProperty(value = "组件路径" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "组件路径")
    private String component;

    // 路由参数
    @ApiModelProperty(value = "路由参数" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "路由参数")
    private String queryParam;

    // 是否为外链（0是 1否）
    @ApiModelProperty(value = "是否为外链（0是 1否）" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "是否为外链（0是 1否）")
    private Integer isFrame;

    // 是否缓存（0缓存 1不缓存）
    @ApiModelProperty(value = "是否缓存（0缓存 1不缓存）" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "是否缓存（0缓存 1不缓存）")
    private Integer isCache;

    // 菜单类型（0目录 1菜单 2按钮）
    @ApiModelProperty(value = "菜单类型（0目录 1菜单 2按钮）" ,dataType="char(1)" ,required= false)
    @ExcelProperty(value = "菜单类型（0目录 1菜单 2按钮）")
    private String menuType;

    // 菜单状态（0显示 1隐藏）
    @ApiModelProperty(value = "菜单状态（0显示 1隐藏）" ,dataType="char(1)" ,required= false)
    @ExcelProperty(value = "菜单状态（0显示 1隐藏）")
    private String visible;

    // 菜单状态（0正常 1停用）
    @ApiModelProperty(value = "菜单状态（0正常 1停用）" ,dataType="char(1)" ,required= false)
    @ExcelProperty(value = "菜单状态（0正常 1停用）")
    private String status;

    // 权限标识
    @ApiModelProperty(value = "权限标识" ,dataType="varchar(100)" ,required= false)
    @ExcelProperty(value = "权限标识")
    private String perms;

    // 菜单图标
    @ApiModelProperty(value = "菜单图标" ,dataType="varchar(100)" ,required= false)
    @ExcelProperty(value = "菜单图标")
    private String icon;

    // 备注
    @ApiModelProperty(value = "备注" ,dataType="varchar(500)" ,required= false)
    @ExcelProperty(value = "备注")
    private String remark;

    // 版本号
    @ApiModelProperty(value = "版本号" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "版本号")
    private Integer version;

    // 租户ID
    @ApiModelProperty(value = "租户ID" ,dataType="varchar(128)" ,required= false)
    @ExcelProperty(value = "租户ID")
    private String tenantId;

    // 创建人
    @ApiModelProperty(value = "创建人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "创建人")
    private String creator;

    // 修改人
    @ApiModelProperty(value = "修改人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "修改人")
    private String updater;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "创建时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime createDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "修改时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime updateDate;

    public Long getId(){
    return this.id;
    }

    public void setId(Long id){
    this.id = id;
    }
    public String getMenuName(){
    return this.menuName;
    }

    public void setMenuName(String menuName){
    this.menuName = menuName;
    }
    public Long getParentId(){
    return this.parentId;
    }

    public void setParentId(Long parentId){
    this.parentId = parentId;
    }
    public Integer getOrderNum(){
    return this.orderNum;
    }

    public void setOrderNum(Integer orderNum){
    this.orderNum = orderNum;
    }
    public String getPath(){
    return this.path;
    }

    public void setPath(String path){
    this.path = path;
    }
    public String getComponent(){
    return this.component;
    }

    public void setComponent(String component){
    this.component = component;
    }
    public String getQueryParam(){
    return this.queryParam;
    }

    public void setQueryParam(String queryParam){
    this.queryParam = queryParam;
    }
    public Integer getIsFrame(){
    return this.isFrame;
    }

    public void setIsFrame(Integer isFrame){
    this.isFrame = isFrame;
    }
    public Integer getIsCache(){
    return this.isCache;
    }

    public void setIsCache(Integer isCache){
    this.isCache = isCache;
    }
    public String getMenuType(){
    return this.menuType;
    }

    public void setMenuType(String menuType){
    this.menuType = menuType;
    }
    public String getVisible(){
    return this.visible;
    }

    public void setVisible(String visible){
    this.visible = visible;
    }
    public String getStatus(){
    return this.status;
    }

    public void setStatus(String status){
    this.status = status;
    }
    public String getPerms(){
    return this.perms;
    }

    public void setPerms(String perms){
    this.perms = perms;
    }
    public String getIcon(){
    return this.icon;
    }

    public void setIcon(String icon){
    this.icon = icon;
    }
    public String getRemark(){
    return this.remark;
    }

    public void setRemark(String remark){
    this.remark = remark;
    }
    public Integer getVersion(){
    return this.version;
    }

    public void setVersion(Integer version){
    this.version = version;
    }
    public String getTenantId(){
    return this.tenantId;
    }

    public void setTenantId(String tenantId){
    this.tenantId = tenantId;
    }
    public String getCreator(){
    return this.creator;
    }

    public void setCreator(String creator){
    this.creator = creator;
    }
    public String getUpdater(){
    return this.updater;
    }

    public void setUpdater(String updater){
    this.updater = updater;
    }
    public java.time.LocalDateTime getCreateDate(){
    return this.createDate;
    }

    public void setCreateDate(java.time.LocalDateTime createDate){
    this.createDate = createDate;
    }
    public java.time.LocalDateTime getUpdateDate(){
    return this.updateDate;
    }

    public void setUpdateDate(java.time.LocalDateTime updateDate){
    this.updateDate = updateDate;
    }

    public SysMenuVo(){
    }

    @Override
    public String toString(){
        return " SysMenuVo ["
             +" id = " +id +" ,"
             +" menuName = " +menuName +" ,"
             +" parentId = " +parentId +" ,"
             +" orderNum = " +orderNum +" ,"
             +" path = " +path +" ,"
             +" component = " +component +" ,"
             +" queryParam = " +queryParam +" ,"
             +" isFrame = " +isFrame +" ,"
             +" isCache = " +isCache +" ,"
             +" menuType = " +menuType +" ,"
             +" visible = " +visible +" ,"
             +" status = " +status +" ,"
             +" perms = " +perms +" ,"
             +" icon = " +icon +" ,"
             +" remark = " +remark +" ,"
             +" version = " +version +" ,"
             +" tenantId = " +tenantId +" ,"
             +" creator = " +creator +" ,"
             +" updater = " +updater +" ,"
             +" createDate = " +createDate +" ,"
             +" updateDate = " +updateDate
        +" ]";
    }

}